package com.cloudvane.ossc;

import java.io.InputStream;
import java.util.List;

import com.cloudvane.ossc.infrastructure.CloudDirectory;
import com.cloudvane.ossc.infrastructure.CloudObject;

public interface ICloudStorageProxy {

	String getStorageClient();
	
	List<CloudDirectory> listDirectories();
	
	List<CloudObject> listObjectsInDirectory(CloudDirectory directory);
	
	void createDirectory(CloudDirectory directory);
	
	void createObject(CloudDirectory targetDirectory, CloudObject object);
	
	void addConfigSetting(String key, String value);
	
	InputStream getObject(CloudObject file);
	
	InputStream getObject(String file);
	
	String getFullPath(CloudDirectory dir);
	
	String getFullPath(CloudDirectory dir, CloudObject obj);
	
	void deleteObject(CloudObject file);
	
	void deleteDirectory(CloudDirectory dir);
	
	boolean isInitialized();
}
